Skip to content

chore(bedside): re-vendor ask/step; AGENTS operator gates (#38) - #39

Merged
tig merged 2 commits into
mainfrom
fix/issue-38-bedside-ask-step-vendor
Jul 13, 2026
Merged

tig merged 2 commits into
mainfrom
fix/issue-38-bedside-ask-step-vendor

Conversation

@tig

@tig tig commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes #38.

Re-vendors tig/bedside after #6 (ask / step) and wires silico Day-1 continuity.

Vendor

  • Pin 868e3b8 (bedside.toml + third_party/bedside/VENDOR.md)
  • CLI: init|doctor|eval|ask|step (was init/doctor/eval only)
  • Eval: 9 fixtures including operator-gate-ask / operator-gate-step
  • Dropped nested .github from vendor tree (silico CI still runs doctor/eval)

AGENTS / BEDSIDE continuity

  • Operator gates section: prefer bedside ask / bedside step over multi-choice free text; agent structured UI still OK when same contract
  • Phase D: confirm-board / confirm-deploy / plug-usb map to gate ids
  • Commands: examples + deploy after ask
  • Load-path / ownership: ask/step owned by bedside surface
  • Metal domain pack (BEDSIDE.md): same confirm pointers

Test plan

  • py -3 -m pip install -e ./third_party/bedside
  • bedside doctor OK (pin 868e3b8)
  • bedside eval 9 fixtures match expect
  • py -3 -m pytest -q

Customer 0 for tig/bedside#6: pin vendored bedside with operator-gate
CLI (ask/step), expand eval fixtures, and point Day-1 human gates at
bedside ask/step (or host UI same contract) instead of multi-choice essays.

Fixes #38

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

notes.write_text(BEDSIDE_MD, encoding="utf-8")

P2 Badge Preserve BEDSIDE.md on vendor refresh

When an existing product runs the new refresh path (bedside init --vendor-from … --force), --force is required because bedside.toml already exists, but this line rewrites BEDSIDE.md with the blank scaffold. That destroys the product's first-run, scary-surface, and Day-2 notes even though the refresh is only meant to update the vendored Bedside tree; leave existing notes intact unless a separate overwrite flag is supplied.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread third_party/bedside/src/bedside/vendor.py

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates silico’s vendored Bedside snapshot to a commit that includes the new operator-gate surface (bedside ask / bedside step), expands Bedside’s eval fixtures/tests accordingly, and wires silico’s Day‑1 operator confirmations to those gates for continuity.

Changes:

  • Re-vendor third_party/bedside to Bedside commit 868e3b8 and include new ask/step CLI + vendor-copy support.
  • Expand eval scoring/fixtures/tests to cover “choice wall” failures and structured gate examples.
  • Update silico AGENTS.md and BEDSIDE.md to reference bedside ask/bedside step for board/deploy/physical-step confirmations.

Reviewed changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
third_party/bedside/VENDOR.md Updates vendored Bedside pin reference.
third_party/bedside/tests/test_eval_engine.py Adds tests for choice-wall and structured-choice scoring.
third_party/bedside/tests/test_cli_commands.py Extends CLI/init/eval tests (vendor-from, multi-root eval, summary semantics).
third_party/bedside/tests/test_ask_step.py Adds test coverage for new ask/step command cores and CLI plumbing.
third_party/bedside/surface/README.md Documents new surface verbs (ask/step) and structured-choice guidance.
third_party/bedside/src/bedside/vendor.py Adds vendor-copy helpers for consumers (no submodule required).
third_party/bedside/src/bedside/exit_codes.py Documents stable exit-code meanings including operator gates.
third_party/bedside/src/bedside/eval_engine.py Adds choice-wall detection and focus vs info failure reporting.
third_party/bedside/src/bedside/config.py Adds fixture_paths support and TOML writing changes.
third_party/bedside/src/bedside/commands/step_cmd.py Implements UI-agnostic step command core.
third_party/bedside/src/bedside/commands/init_cmd.py Adds vendor-copy init flow and scaffolds domain fixture directories.
third_party/bedside/src/bedside/commands/eval_cmd.py Supports default multi-root fixtures via fixture_paths and improves summaries.
third_party/bedside/src/bedside/commands/ask_cmd.py Implements UI-agnostic ask command core.
third_party/bedside/src/bedside/cli.py Wires ask/step into argparse CLI and normalizes usage-error exit codes.
third_party/bedside/src/bedside/init.py Bumps Bedside version constant to 0.1.2.
third_party/bedside/README.md Updates README with vendor-copy workflow, multi-root eval, and ask/step usage.
third_party/bedside/pyproject.toml Updates project version to 0.1.2.
third_party/bedside/eval/README.md Documents domain-pack fixture layout and updates rubric text for choice walls.
third_party/bedside/eval/fixtures/known-good/structured-choice/transcript.md Adds known-good fixture demonstrating structured choice UI usage.
third_party/bedside/eval/fixtures/known-good/structured-choice/meta.toml Metadata for structured-choice fixture.
third_party/bedside/eval/fixtures/known-good/operator-gate-step/transcript.md Adds known-good fixture demonstrating bedside step.
third_party/bedside/eval/fixtures/known-good/operator-gate-step/meta.toml Metadata for operator-gate-step fixture.
third_party/bedside/eval/fixtures/known-good/operator-gate-ask/transcript.md Adds known-good fixture demonstrating bedside ask.
third_party/bedside/eval/fixtures/known-good/operator-gate-ask/meta.toml Metadata for operator-gate-ask fixture.
third_party/bedside/eval/fixtures/known-bad/multi-step-body-dump/transcript.md Adds known-bad fixture for batched physical steps + cliff behavior.
third_party/bedside/eval/fixtures/known-bad/multi-step-body-dump/meta.toml Metadata for multi-step-body-dump fixture.
third_party/bedside/eval/fixtures/known-bad/choice-wall/transcript.md Adds known-bad fixture demonstrating “choice wall” anti-pattern.
third_party/bedside/eval/fixtures/known-bad/choice-wall/meta.toml Metadata for choice-wall fixture.
third_party/bedside/docs/adopting.md Adds consumer adoption guide (recommended layout + vendor-copy workflow).
third_party/bedside/contract/README.md Updates contract text to explicitly forbid “choice walls” when structured UI exists.
third_party/bedside/bedside.toml Adds fixture_paths default to the vendored Bedside config.
third_party/bedside/AGENTS.md Updates Bedside’s own AGENTS stub to reference ask/step gates.
third_party/bedside/.github/workflows/ci.yml Removes vendored upstream workflow from the vendor tree.
bedside.toml Updates silico’s Bedside pin to 868e3b8.
BEDSIDE.md Maps metal-domain scary surfaces and confirmations to ask/step gate ids.
AGENTS.md Adds operator-gate guidance and integrates ask/step into Phase D flow and command examples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread third_party/bedside/src/bedside/commands/ask_cmd.py
Comment thread third_party/bedside/src/bedside/commands/ask_cmd.py
Comment thread third_party/bedside/src/bedside/commands/step_cmd.py
- vendor_copy: refuse source==dest and dest nested under source
- init: never overwrite existing BEDSIDE.md on --force re-vendor
- ask: Record uses choice=pending; pre-prompts to stderr when --json
- step: pre-step text to stderr when --json
- tests for preserve notes, self-vendor, and pending record line

Upstream-worthy; fixed in silico vendor tree as customer 0.
@tig

tig commented Jul 13, 2026

Copy link
Copy Markdown
Owner Author

Fixed (Codex review body, init_cmd) in cade05f.

bedside init --force no longer overwrites an existing BEDSIDE.md. Domain notes are only scaffolded when missing, so re-vendor refresh cannot wipe product first-run / scary-surface / Day-2 notes.

Test: test_init_force_preserves_existing_bedside_md.

Note: these fixes live in the silico vendored tree (customer 0). Worth promoting upstream to tig/bedside so the next re-vendor keeps them.

@tig

tig commented Jul 13, 2026

Copy link
Copy Markdown
Owner Author

CR summary (cade05f)

# Source Topic Status
1 Codex Preserve BEDSIDE.md on --force re-vendor Fixed + test
2 Codex Reject self-vendoring (source==dest) Fixed + test
3 Copilot ask Record choice=pending Fixed + test
4 Copilot ask --json interactive pollutes stdout Fixed (pre-prompt to stderr)
5 Copilot step --json interactive pollutes stdout Fixed (pre-step to stderr)

Local: 35 bedside tests + silico pytest green; doctor/eval OK.

These land in the vendored bedside tree; should be promoted to tig/bedside so the next pin keeps them.

@tig
tig merged commit cf26198 into main Jul 13, 2026
1 check passed
@tig

tig commented Jul 13, 2026

Copy link
Copy Markdown
Owner Author

Upstream promotion of the CR fixes: tig/bedside#9 (vendor self-copy guard, preserve BEDSIDE.md, ask/step record + JSON stderr hygiene). After that merges, next silico re-vendor will pick them up natively.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Track/adopt tig/bedside#6: ask/step operator gates (customer 0)

2 participants